package com.snail.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.snail.model.entity.NoteQueryRequest;
import com.snail.model.entity.NoteSaveRequest;
import com.snail.model.pojo.BizMediaDoc;
import com.snail.model.vo.UserVo;

import java.util.List;

/**
* @author Monica
* @description 针对表【biz_media_doc(文档表)】的数据库操作Service
* @createDate 2025-07-16 10:22:25
*/
public interface BizMediaDocService extends IService<BizMediaDoc> {
    /**
     * TODO: 这里写接口方法的详细描述
     * 新增文档
     * @param bizMediaDoc 文档对象
     * @return 新增的文档id
     */
    void addDoc(BizMediaDoc bizMediaDoc);

    /**
     * TODO: 这里写接口方法的详细描述
     * 根据id查询文档
     * @param id 文档id
     * @return 文档对象
     */
    BizMediaDoc getDocById(Integer id);
    String getContentById(Integer id);

    /**
     * TODO: 这里写接口方法的详细描述
     * 根据条件查询文档列表
     * @param bizMediaDoc 文档对象
     * @return 文档列表
     */
    List<BizMediaDoc> getDocList(BizMediaDoc bizMediaDoc);

    /**
     * TODO: 这里写接口方法的详细描述
     * 根据id更新文档
     * @param bizMediaDoc 文档对象
     */
    void updateDocById(BizMediaDoc bizMediaDoc);


    /**
     * TODO: 这里写接口方法的详细描述
     * 根据用户id查询文档列表
     */
    List<BizMediaDoc> getDocListByUserId(UserVo userVo);

    /**
     * 根据用户id、视频id查询文档
     */
    BizMediaDoc getDocByUserIdAndOutlineId(UserVo userVo);
    void saveWithoutAutoFill(BizMediaDoc bizMediaDoc);

    void saveNote(NoteSaveRequest noteSaveRequest);

    BizMediaDoc getNoteByRequest(NoteQueryRequest noteQueryRequest);

    List<BizMediaDoc> getNotesByUser(NoteQueryRequest noteQueryRequest);
}
